In recent years, new consumer electronics devices have been introduced that can connect to local area computer networks, including home networks. Examples of such devices include printers, DVD players and personal video recorders. A technology called Universal Plug and Play (UPnP) has been developed to provide a common language for such devices to communicate over such networks.
UPnP defines a category of devices called media servers, and another category called media renderers, and a concept called a control point. A control point is an entity which can find UPnP devices and control them. A control point that controls a media renderer is referred to as a digital media controller (DMC).
A common use of UPnP devices is to have a media server that transfers multimedia content (e.g., a digital representation of a movie) to a media renderer device, with the help of a digital media controller. The media server, media renderer and the digital media controller are three separate devices, and the digital media controller orchestrates the connection between the media renderer and the media server. In a possible scenario, the media renderer is a networked television, the media server is a desktop personal computer, and the digital media controller is a portable personal computer such as a notebook computer or a mobile phone. The digital media controller discovers the media server and downloads a catalog of movies from the media server. The digital media controller then instructs the media renderer to initiate a streaming transfer of one the movies from the media server to the media renderer for display on the television screen.
There are several limitations with existing implementations of UPnP and similar networked systems.
First, the media renderer and media server can only communicate directly with each other if they can discover each other on the network, which usually requires the two devices to be connected to the same network segment. While a digital media controller can act as an intermediary, transferring data from the media server to the digital media controller and then from the digital media controller to the media renderer (acting in a role called a “push controller”) such operation is undesirable.
Second, if the media renderer does not have the capability to process a file format, data format, or encoded bitstream provided by the media server, then playback directly from the media server to the media renderer is not possible.
These limitations are exacerbated when the connections among devices use different communication media. For example, a television might be connected to the home network using a wireless connection, while the desktop personal computer might be connected to the home network only a wired (Ethernet) connection. The digital media controller, which could be a portable device, might be connected to both the wired and the wireless network simultaneously. It is possible that two devices use different protocols (such as internet protocol version 6 (IPv6) and version 4 (IPv4)), or are on different subnets. In some cases, the wireless connection is through an access point which relays the traffic between devices that want to communicate with each other. Another mode of wireless connection, called Wi-Fi Direct, also can be used. In this mode of operation, two or more devices communicating with each other can form a group, with one of the devices acting as the access point for the group. As long as either the sender or the receiver of the multi-media data is acting as the access point, data does not have to be relayed by a third device.